#ifndef DPROTATION
#define DPROTATION

#include <base\vec4d.h>
#include <base\vec3d.h>

#define FLT_EPSILON     1.192092896e-07F        /* smallest such that 1.0+FLT_EPSILON != 1.0 */

class dpmatrix;

class dprotation {

 vec4d quat;

public:

  dprotation(const vec3d & axis, const double radians);
  dprotation(const double q[4]);
  dprotation(const double q0, const double q1, const double q2, const double q3);
  static dprotation identity(void);

  void getValue(dpmatrix & matrix_) const;
  const double * getValue(void) const;
};

#endif